/*
 * @Author: Dorange.Wang
 * @Date: 2021-03-31 16:41:16
 * @LastEditors: wangming
 * @LastEditTime: 2022-01-28 11:04:46
 * @Description: file content
 */

// export const USER_NAME_REG = /^[a-z0-9]{1}[a-z0-9_]{4,63}$/
// export const IDENTIFICATION_REG = /^[a-z]{2,16}$/

/**
 * _MSG 用于提示用户规则 tooltip
 */

export const MOBILE_REG = /^1[1-9]{1}\d{9}$/

export const COMMON_CODE_REG = /^[a-z_]{1}[a-z0-9_]{0,27}$/
export const COMMON_CODE_REG_MSG =
  '最长28位，支持英文字母（小写）、数字和“_”（下划线），首字符必须为字母或“_”'

export const COMMON_CODE_I_REG = /^[a-zA-Z_]{1}[a-zA-Z0-9_]{0,27}$/
export const COMMON_CODE_I_REG_MSG =
  '最长28位，支持英文字母、数字和“_”（下划线），首字符必须为字母或“_”'

export const COMMON_CODE_REG_64 = /^[a-z_]{1}[a-z0-9_]{0,63}$/
export const COMMON_CODE_REG_64_MSG =
  '最长64位，支持英文字母（小写）、数字和“_”（下划线），首字符必须为字母或“_”'

export const COMMON_CODE_64_I_REG = /^[a-zA-Z_]{1}[a-zA-Z0-9_]{0,63}$/
export const COMMON_CODE_64_I_REG_MSG =
  '最长64位，支持英文字母、数字和“_”（下划线），首字符必须为字母或“_”'

export const MODULE_CODE_REG = /^[a-z_]{1}[a-z0-9_]{0,27}$/
export const MODULE_CODE_REG_MSG =
  '最长28位，支持英文字母（小写）、数字和“_”（下划线），首字符必须为字母或“_”'

export const FIELD_CODE_REG = /^[a-z_]{1}[a-z0-9_]{0,27}$/
export const FIELD_CODE_REG_MSG =
  '最长28位，支持英文字母（小写）、数字和“_”（下划线），首字符必须为字母或“_”'

export const PROCESS_KEY_REG = /^[a-z_]{1}[a-z0-9_]{0,27}$/
export const PROCESS_KEY_REG_MSG =
  '最长28位，支持英文字母（小写）、数字和“_”（下划线），首字符必须为字母或“_”'

export const SCRIPT_CODE_REG = /^[a-z_]{1}[a-z0-9_]{0,127}$/
export const SCRIPT_CODE_REG_MSG =
  '最长128位，支持英文字母（小写）、数字和“_”（下划线），首字符必须为字母或“_”'

export const DICT_OPTION_VALUE_REG = {
  pattern: /^[a-zA-Z0-9\u4e00-\u9fa5_]{1,50}$/,
  message: '支持英文、数字、“_”（下划线）、中文'
}

// 28位正则
export const COMMON_CODE_28I_REG = {
  pattern: /^[a-zA-Z_]{1}[a-zA-Z0-9_]{0,27}$/,
  message: '支持字母、数字和“_”（下划线），首字符必须为字母或“_”'
}

// 64位正则
export const COMMON_CODE_64I_REG = {
  pattern: /^[a-zA-Z_]{1}[a-zA-Z0-9_]{0,63}$/,
  message: '支持字母、数字和“_”（下划线），首字符必须为字母或“_”'
}

// 128位正则
export const COMMON_CODE_128I_REG = {
  pattern: /^[a-zA-Z_]{1}[a-zA-Z0-9_]{0,127}$/,
  message: '支持字母、数字和“_”（下划线），首字符必须为字母或“_”'
}

// 默认非空正则
export const COMMON_REQUIRED_REG = /^.{1,}$/
// 内置变量正则
export const VARIABLE_BUILT_IN_REG = /^\${.{1,}}$/

// 正整数正则
export const POSITIVE_INTEGER_REG = /^[1-9]{1}\d*$/

export const URL_REG = /^(((ht|f)tps?):\/\/)?[\w-]+(\.[\w-]+)+([\w.,@?^=%&:\\/~+#-]*[\w@?^=%&\\/~+#-])?$/
// 域名正则
export const HOST_REG =
  '(^(?=^.{3,255}$)(http(s)?://)?(www.)?[a-zA-Z0-9][-a-zA-Z0-9]{0,62}(.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+(:d+)*(/w+.w+)*$)|(^([1-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])(.([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])){3}$)'
// 端口正则
export const PORT_REG = /^([0-9]|[1-9]\d|[1-9]\d{2}|[1-9]\d{3}|[1-5]\d{4}|6[0-4]\d{3}|65[0-4]\d{2}|655[0-2]\d|6553[0-5])$/

export const PASSWORD_REG = /^[a-zA-Z0-9~!@#$%^&*()_+-=]{6,32}$/
export const PASSWORD_REG_MSG =
  '最短6位，最长32位，支持英文字母、数字以及特殊符号（包括：~!@#$%^&*()_+-=）'
export const PASSWORD_REG_MSG_I18N = 'password_reg_msg_i18n'

//mqtt TOPIC
export const TOPIC_REG = /./
  // /^(([A-Za-z0-9._-]{1}[A-Za-z0-9._-\s]*)|(\$[A-Za-z0-9._-\s]+))(\/[A-Za-z0-9\#\+._-\s]+)*$/
export const PASSWORD_COMPLEX_REG = /^(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[~!=@#$%^&*()_+-]).{6,32}$/
export const PASSWORD_COMPLEX_REG_MSG = '最短6位，最长32位，必须包含大小写英文字母、数字以及特殊符号（包括：~!@#$%^&*()_+-=）'
export const PASSWORD_COMPLEX_REG_MSG_I18N = 'password_complex_reg_msg_i18n'
